package Array;

/**
 * Enjoy programming!!!
 * Time: 2021/10/27 -  20:31
 */
public class IrregularArray00 {
    public static void main(String[] args) {
        final int NMAX = 10;

        //allocate triangular array
        int[][] odds = new int[NMAX + 1][];//odds有11行
        for (int n = 0; n <= NMAX; n++) {
            odds[n] = new int[n + 1];//第n行n个数
        }

        //fill triangular array
        for (int n = 0; n < odds.length; n++) {
            for (int k = 0; k < odds[n].length; k++) {
                /**
                 * compute binomail coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)
                 */
                int lotteryOdds = 1;
                for (int i = 1; i <= k; i++) {
                    lotteryOdds = lotteryOdds * (n - i + 1) / i;
                }//这里的for解决了从n中取k

                odds[n][k] = lotteryOdds;
            }
        }

        // print triangular array
        for (int[] row : odds) {
            for (int odd : row) {
                System.out.printf("%4d", odd);
            }
            System.out.println();
        }
    }
}
